package thefirst.LessonBoard.model;

import java.sql.SQLException;
import java.util.List;

import javax.annotation.Resource;


import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class LessonBoardDaoImpl implements LessonBoardDao {
	@Resource(name = "sqlSessionTemplate")
	private SqlSessionTemplate sqlSessionTemplate;
/**
 * 글쓰기
 */
	@Override
	public void writeLessonBoard(LessonBoardVO lessonBoardVO) throws SQLException {
		//System.out.println("writeLessonBoard : "+ lessonBoardVO);
		sqlSessionTemplate.insert("lessonBoard.writeLesson",lessonBoardVO);
		
	}
/**
 * 수업등록 총게시물의 리스트를 가져온다.
 */
	@Override
	public List<LessonBoardVO> getLessonBoardList(String pageNo)
			throws SQLException {
		return sqlSessionTemplate.selectList("lessonBoard.getLessonBoardList",pageNo);
	}
/**
 * 게시물의 총갯수를 가져온다.
 */
	@Override
	public int totalLessonContent() throws SQLException {
		// TODO Auto-generated method stub
		return sqlSessionTemplate.selectOne("lessonBoard.totalLessonContent");
	}
/**
 * 게시물 상세보기
 */
	@Override
	public LessonBoardVO showLessonBoardInfoNoHits(LessonBoardVO lvo) throws SQLException {
		LessonBoardVO lbvo=sqlSessionTemplate.selectOne("lessonBoard.showLessonInfoNoHits",lvo);
		return lbvo;
	}
/**
 * 조회수를 올린다.
 */
	@Override
	public int updateHits(LessonBoardVO lvo) throws SQLException {
		//System.out.println("updateHits : "+ lvo.getLessonno());
		return sqlSessionTemplate.update("lessonBoard.updateHits",lvo.getLessonno());
	}
/**
 * 게시물 삭제
 */
	@Override
	public void deleteLessonContent(LessonBoardVO lvo) throws SQLException {
		sqlSessionTemplate.delete("lessonBoard.deleteLessonContent",lvo);
		
	}
/**
 * 게시물 수정
 */
	@Override
	public int updateBoardContent(LessonBoardVO lvo)
			throws SQLException {
		// TODO Auto-generated method stub
		return sqlSessionTemplate.update("lessonBoard.updateLessonContent",lvo);
	}
	
	/**
	 *  선생님 아이디, 수업 번호를 받아서 업데이트를 실행한다.
	 */
	@Override
	public int acceptSelectedList(LessonBoardVO lbvo) throws SQLException {
		// TODO Auto-generated method stub
		
		return sqlSessionTemplate.update("lessonBoard.acceptSelectedList", lbvo);
	}
	
	/**
	 *  선생님 아이디, 수업 번호를 받아서 null 과 연결가능으로 변경
	 */
	@Override
	public void rejectSelectedList(LessonBoardVO lbvo) throws SQLException {
		// TODO Auto-generated method stub
		sqlSessionTemplate.update("lessonBoard.rejectSelectedList", lbvo);
	}
/**
 * 게시물 검색
 */

	@Override
	public List<?> searchLessonBoard(LessonBoardVO lvo) {
		return sqlSessionTemplate.selectList("lessonBoard.searchLesson",lvo);
	}
/**
 * 검색한 게시물의 총갯수	
 */
	@Override
	public int searchCount(LessonBoardVO lvo) throws SQLException{
		return sqlSessionTemplate.selectOne("lessonBoard.searchCount",lvo);
	}
/**
 * 메인 페이지에 보여줄 가장 최근 게시물을 가져온다.
 */
	@Override
	public List<LessonBoardVO> getLessonBoardListForMain() throws SQLException {
		return sqlSessionTemplate.selectList("lessonBoard.getLessonBoardListForMain");
	}
/**
 * 연결상태를 가져온다.
 */
	@Override
	public LessonBoardVO getConnectstate(LessonBoardVO lbvo) throws SQLException {
		// TODO Auto-generated method stub
		return sqlSessionTemplate.selectOne("lessonBoard.getConnectstate", lbvo);
	}

	
}
